#pragma once

#include <refbase.h>
#include <singleton_delegator.h>

#include "service_registry.h"

class PrimeGeneratorService : public IService {
public:
    static const sptr<PrimeGeneratorService> &GetInstance();

    virtual int GetID() override;
    virtual std::string Process(const std::string &message) override;

private:
    PrimeGeneratorService() = default;
    virtual ~PrimeGeneratorService() = default;
    static inline sptr<PrimeGeneratorService> instance = nullptr;
    static inline SingletonDelegator<PrimeGeneratorService> delegator;

    std::string ProcessGet(int id);
};
